home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / OCLIEN.PAK / MAINVIEW.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  5KB  |  139 lines

  1. // mainview.h : interface of the CMainView class
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1995 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13.  
  14. class CRectItem;
  15.  
  16. class CMainView : public CScrollView
  17. {
  18. protected: // create from serialization only
  19.     CMainView();
  20.     DECLARE_DYNCREATE(CMainView)
  21.  
  22. // Attributes
  23. public:
  24.     CMainDoc* GetDocument()
  25.     {
  26.         ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMainDoc)));
  27.         return (CMainDoc*) m_pDocument;
  28.     }
  29.  
  30.     CRectItem* GetSelection() const
  31.         { return m_pSelection; } // Just the top-most window
  32.     // set bSafeSelect to TRUE when there is a chance that an inplace
  33.     // active item could be deactivated before finishing
  34.     void SetSelection(CRectItem* pNewSel, BOOL bSafeSelect = FALSE);
  35.  
  36. // Operations
  37. public:
  38.     CRectItem* DoPasteItem(BOOL bLink, COleDataObject* pDataObject,
  39.         CPoint* pPoint, CLIPFORMAT cfFormat = 0);
  40.     void ClientToDoc(CRect &rc);
  41.     void DocToClient(CRect &rc);
  42.     void ClientToDoc(CPoint &pt);
  43.     void DocToClient(CPoint &pt);
  44.     void ClientToDoc(CSize &sz);
  45.     void DocToClient(CSize &sz);
  46.     void UpdateActiveItem();
  47.  
  48.  
  49. // Implementation
  50. protected:
  51.     BOOL m_bInDrag;
  52.     CRectItem* m_pSelection;
  53.     COleDropTarget m_dropTarget;
  54.     CPoint m_dragPoint;
  55.     CSize m_dragSize;
  56.     CSize m_dragOffset;
  57.     DROPEFFECT m_prevDropEffect;
  58.     static CLIPFORMAT m_cfObjectDescriptor;
  59.     static CBrush NEAR m_brHatch;
  60.  
  61.     CRectItem* GetHitItem(CPoint point);
  62.     BOOL GetObjectInfo(COleDataObject* pDataObject,
  63.         CSize* pSize, CSize* pOffset);
  64.     void DoPasteNative(COleDataObject* pDataObject, CPoint* pPoint,
  65.         CRectItem* pItem);
  66.     void DoPasteStandard(BOOL bLink, COleDataObject* pDataObject,
  67.         CPoint* pPoint, CRectItem* pItem, CLIPFORMAT cfFormat = 0);
  68.  
  69. public:
  70.     virtual ~CMainView();
  71.     virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);
  72.     virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  73.     virtual void OnInitialUpdate();
  74.     virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
  75. #ifdef _DEBUG
  76.     virtual void AssertValid() const;
  77.     virtual void Dump(CDumpContext& dc) const;
  78. #endif
  79.  
  80.     // special scroll handling
  81.     virtual BOOL OnScrollBy(CSize sizeScroll, BOOL bDoScroll = TRUE);
  82.  
  83.     // drag drop implementation
  84.     virtual BOOL OnDrop(COleDataObject* pDataObject,
  85.         DROPEFFECT dropEffect, CPoint point);
  86.     virtual DROPEFFECT OnDragEnter(COleDataObject* pDataObject,
  87.         DWORD grfKeyState, CPoint point);
  88.     virtual DROPEFFECT OnDragOver(COleDataObject* pDataObject,
  89.         DWORD grfKeyState, CPoint point);
  90.     virtual void OnDragLeave();
  91.  
  92.     // Printing support
  93. protected:
  94.     virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  95.  
  96.     // OLE Client support
  97.     virtual BOOL IsSelected(const CObject* pDocItem) const;
  98.     BOOL DoCopySelection();
  99.     void SetupTracker(CRectTracker* pTracker, CRectItem* pItem,
  100.         CRect* pTrueRect = NULL);
  101.     void InvalidateItem(CRectItem* pItem);
  102.  
  103. // Generated message map functions
  104. protected:
  105.     //{{AFX_MSG(CMainView)
  106.     afx_msg void OnPaste();
  107.     afx_msg void OnPasteLink();
  108.     afx_msg void OnInsertObject();
  109.     afx_msg void OnUpdateEditMenu(CCmdUI* pCmdUI);
  110.     afx_msg void OnEditClear();
  111.     afx_msg void OnEditCopy();
  112.     afx_msg void OnEditCut();
  113.     afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  114.     afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  115.     afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  116.     afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  117.     afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  118.     afx_msg void OnSetFocus(CWnd* pOldWnd);
  119.     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  120.     afx_msg void OnSize(UINT nType, int cx, int cy);
  121.     afx_msg void OnObjectDisplayContent();
  122.     afx_msg void OnUpdateObjectDisplayContent(CCmdUI* pCmdUI);
  123.     afx_msg void OnObjectDisplayAsIcon();
  124.     afx_msg void OnUpdateObjectDisplayAsIcon(CCmdUI* pCmdUI);
  125.     afx_msg void OnPasteSpecial();
  126.     afx_msg void OnUpdateEditClone(CCmdUI* pCmdUI);
  127.     afx_msg void OnEditClone();
  128.     afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
  129.     afx_msg void OnObjectResetsize();
  130.     afx_msg void OnCancelInplace();
  131.     afx_msg void OnDestroy();
  132.     afx_msg void OnUpdateOleEditProperties(CCmdUI* pCmdUI);
  133.     afx_msg void OnOleEditProperties();
  134.     afx_msg void OnUpdateOleChangeSource(CCmdUI* pCmdUI);
  135.     afx_msg void OnOleChangeSource();
  136.     //}}AFX_MSG
  137.     DECLARE_MESSAGE_MAP()
  138. };
  139.